Volume Profile Grid [Alpha Extract]A sophisticated volume distribution analysis system that transforms market activity into institutional-grade visual profiles, revealing hidden support/resistance zones and market participant behavior. Utilizing advanced price level segmentation, bullish/bearish volume separation, and dynamic range analysis, the Volume Profile Grid delivers comprehensive market structure insights with Point of Control (POC) identification, Value Area boundaries, and volume delta analysis. The system features intelligent visualization modes, real-time sentiment analysis, and flexible range selection to provide traders with clear, actionable volume-based market context.
🔶 Dynamic Range Analysis Engine
Implements dual-mode range selection with visible chart analysis and fixed period lookback, automatically adjusting to current market view or analyzing specified historical periods. The system intelligently calculates optimal bar counts while maintaining performance through configurable maximum limits, ensuring responsive profile generation across all timeframes with institutional-grade precision.
// Dynamic period calculation with intelligent caching
get_analysis_period() =>
if i_use_visible_range
chart_start_time = chart.left_visible_bar_time
current_time = last_bar_time
time_span = current_time - chart_start_time
tf_seconds = timeframe.in_seconds()
estimated_bars = time_span / (tf_seconds * 1000)
range_bars = math.floor(estimated_bars)
final_bars = math.min(range_bars, i_max_visible_bars)
math.max(final_bars, 50) // Minimum threshold
else
math.max(i_periods, 50)
🔶 Advanced Bull/Bear Volume Separation
Employs sophisticated candle classification algorithms to separate bullish and bearish volume at each price level, with weighted distribution based on bar intersection ratios. The system analyzes open/close relationships to determine volume direction, applying proportional allocation for doji patterns and ensuring accurate representation of buying versus selling pressure across the entire price spectrum.
🔶 Multi-Mode Volume Visualization
Features three distinct display modes for bull/bear volume representation: Split mode creates mirrored profiles from a central axis, Side by Side mode displays sequential bull/bear segments, and Stacked mode separates volumes vertically. Each mode offers unique insights into market participant behavior with customizable width, thickness, and color parameters for optimal visual clarity.
// Bull/Bear volume calculation with weighted distribution
for bar_offset = 0 to actual_periods - 1
bar_high = high
bar_low = low
bar_volume = volume
// Calculate intersection weight
weight = math.min(bar_high, next_level) - math.max(bar_low, current_level)
weight := weight / (bar_high - bar_low)
weighted_volume = bar_volume * weight
// Classify volume direction
if bar_close > bar_open
level_bull_volume += weighted_volume
else if bar_close < bar_open
level_bear_volume += weighted_volume
else // Doji handling
level_bull_volume += weighted_volume * 0.5
level_bear_volume += weighted_volume * 0.5
🔶 Point of Control & Value Area Detection
Implements institutional-standard POC identification by locating the price level with maximum volume accumulation, providing critical support/resistance zones. The Value Area calculation uses sophisticated sorting algorithms to identify the price range containing 70% of trading volume, revealing the market's accepted value zone where institutional participants concentrate their activity.
🔶 Volume Delta Analysis System
Incorporates real-time volume delta calculation with configurable dominance thresholds to identify significant bull/bear imbalances. The system visually highlights price levels where buying or selling pressure exceeds threshold percentages, providing immediate insight into directional volume flow and potential reversal zones through color-coded delta indicators.
// Value Area calculation using 70% volume accumulation
total_volume_sum = array.sum(total_volumes)
target_volume = total_volume_sum * 0.70
// Sort volumes to find highest activity zones
for i = 0 to array.size(sorted_volumes) - 2
for j = i + 1 to array.size(sorted_volumes) - 1
if array.get(sorted_volumes, j) > array.get(sorted_volumes, i)
// Swap and track indices for value area boundaries
// Accumulate until 70% threshold reached
for i = 0 to array.size(sorted_indices) - 1
accumulated_volume += vol
array.push(va_levels, array.get(volume_levels, idx))
if accumulated_volume >= target_volume
break
❓How It Works
🔶 Weighted Volume Distribution
Implements proportional volume allocation based on the percentage of each bar that intersects with price levels. When a bar spans multiple levels, volume is distributed proportionally based on the intersection ratio, ensuring precise representation of trading activity across the entire price spectrum without double-counting or volume loss.
🔶 Real-Time Profile Generation
Profiles regenerate on each bar close when in visible range mode, automatically adapting to chart zoom and scroll actions. The system maintains optimal performance through intelligent caching mechanisms and selective line updates, ensuring smooth operation even with maximum resolution settings and extended analysis periods.
🔶 Market Sentiment Analysis
Features comprehensive volume analysis table displaying total volume metrics, bullish/bearish percentages, and overall market sentiment classification. The system calculates volume dominance ratios in real-time, providing immediate insight into whether buyers or sellers control the current price structure with percentage-based sentiment thresholds.
🔶 Visual Profile Mapping
Provides multi-layered visual feedback through colored volume bars, POC line highlighting, Value Area boundaries, and optional delta indicators. The system supports profile mirroring for alternative perspectives, line extension for future reference, and customizable label positioning with detailed price information at critical levels.
Why Choose Volume Profile Grid
The Volume Profile Grid represents the evolution of volume analysis tools, combining traditional volume profile concepts with modern visualization techniques and intelligent analysis algorithms. By integrating dynamic range selection, sophisticated bull/bear separation, and multi-mode visualization with POC/Value Area detection, it provides traders with institutional-quality market structure analysis that adapts to any trading style. The comprehensive delta analysis and sentiment monitoring system eliminates guesswork while the flexible visualization options ensure optimal clarity across all market conditions, making it an essential tool for traders seeking to understand true market dynamics through volume-based price discovery.
ค้นหาในสคริปต์สำหรับ "volume profile"
Volume Profile (PRO) [ActiveQuants]The Volume Profile (PRO) indicator is an advanced analytical tool designed to provide traders with a deep understanding of market dynamics by displaying trading activity across different price levels over a specified period. By meticulously plotting volume distribution , this indicator helps identify significant price zones, such as areas of high acceptance ( High Volume Nodes - HVNs ), rejection ( Low Volume Nodes - LVNs ), Volume Peaks Clusters , Volume Troughs Clusters , the Point of Control (POC) , and the Value Area (VA) . This insight is crucial for spotting potential support/resistance levels, assessing market sentiment, and making more informed trading decisions.
This indicator operates on the principle that price levels with higher traded volume hold greater significance, often acting as pivotal points for future price movements. Conversely, areas with low volume typically indicate less agreement on price, leading to quicker price transitions. The Volume Profile (PRO) offers extensive customization to tailor the analysis to your specific needs and trading style.
█ KEY FEATURES
Comprehensive Volume Analysis: Visualize volume distribution horizontally, revealing key price levels based on actual traded volume.
Dynamic Profile Calculation: Uses a rolling lookback period to keep the profile relevant to recent price action.
Point of Control (POC): Automatically identifies and plots the price level with the highest traded volume within the profile period. Available as a "Regular" (fixed for the current profile) or "Developing" line that tracks its evolution bar-by-bar.
Value Area (VA): Highlights the price range where a specified percentage (typically 70%) of the total volume was traded. Also available as "Regular" or "Developing" VAH (Value Area High) and VAL (Value Area Low) lines.
High and Low Volume Nodes (HVNs & LVNs): Option to automatically detect and highlight a specified number of the highest volume concentration zones (HVNs) and lowest volume zones (LVNs) within the profile. These are crucial for identifying support/resistance and areas of potential quick price movement.
Volume Peaks and Troughs Detection: Identify statistically significant high-volume (Peaks) and low-volume (Troughs) rows relative to their neighbors, either as single rows or clusters. These can pinpoint precise levels of interest.
Multiple Volume Display Types: Choose to display volume as:
- Up/Down: Shows buying and selling volume side-by-side for each row.
- Total: Shows the aggregate volume for each row.
- Delta: Shows the difference between buying and selling volume for each row, highlighting imbalances.
Extensive Customization: Fine-tune lookback period, number of rows, profile width, horizontal placement, Value Area percentage, colors for all elements, and specific parameters for node/peak/trough detection.
Visual Enhancements:
- Optional gradient colors for volume bars.
- Display volume figures directly on rows.
- Background shading for the Value Area and the entire Profile range.
- Price labels for POC, VAH, VAL, Profile High, and Profile Low.
Integrated Alert System: Pre-built alert conditions for critical volume profile events. (See section on "█ SETTING UP ALERTS " for more details).
█ USER INPUTS
The settings panel is organized into distinct sections:
- Calculation Settings:
Lookback: Number of most recent bars for profile calculation.
Number of Rows: Resolution of the volume profile.
Profile Width: Relative horizontal length of the volume bars.
Horizontal Offset: Horizontal positioning of the profile.
Value Area (%): Percentage of volume to include in the Value Area.
Volume: Display type ("Up/Down", "Total", "Delta").
Profile Placement: "Right" or "Left" side of the chart.
- Appearance:
Volume Profile On/Off: Toggle visibility of the entire profile.
Rows Border Width & Color: Customize the outline of volume rows.
Gradient Colors: Enable/disable gradient coloring for volume bars.
Row Volume: Display numerical volume on each row.
VAH (Value Area High): Display type ("None", "Regular", "Developing"), Color, Price Label, Line Width.
VAL (Value Area Low): Display type ("None", "Regular", "Developing"), Color, Price Label, Line Width.
Profile High Price Label & Color: Toggle and customize.
Profile Low Price Label & Color: Toggle and customize.
Value Area Up/Down Color: Colors for up/down volume within VA.
Profile Up/Down Color: Colors for up/down volume outside VA.
Total Volume Color: For "Total" volume display type.
Delta Volume Positive/Negative Color: For "Delta" volume display type.
POC (Point of Control): Display type ("None", "Regular", "Developing"), Color, Line Width, Price Label.
Value Area Background & Color: Enable and customize VA background shading.
Profile Background & Color: Enable and customize profile range background shading.
Volume Nodes:
Highest Volume Nodes & Color: Number of HVNs to highlight and their color.
Lowest Volume Nodes & Color: Number of LVNs to highlight and their color.
Volume Peaks: Detection type ("None", "Single Row", "Cluster"), Color.
Compared Neighbors (Peaks): Number of neighboring rows to compare against for peak detection.
Minimum Peak Ratio (Peaks): Volume ratio required for a row to be considered a peak.
Volume Troughs: Detection type ("None", "Single Row", "Cluster"), Color.
Compared Neighbors (Troughs): Number of neighboring rows to compare against for trough detection.
Minimum Trough Ratio (Troughs): Volume ratio required for a row to be considered a trough.
█ SETTING UP ALERTS
The Volume Profile (PRO) indicator comes with a comprehensive set of pre-configured alert conditions to notify you of key market events related to volume structure. To set up an alert:
Click the " Alert " button (clock icon) on TradingView's right-hand toolbar or top panel.
In the " Condition " dropdown, select " Volume Profile (PRO) ".
A second dropdown will appear, allowing you to choose from the following specific alert conditions built into the script:
- POC Price Change: Triggers when the Point of Control price level changes.
- POC Crossover: Triggers when the closing price crosses over the POC line and is now above it.
- POC Crossunder: Triggers when the closing price crosses under the POC line and is now below it.
- Close Inside Value Area: Triggers when the closing price enters the Value Area.
- Close Outside Value Area: Triggers when the closing price exits the Value Area.
- Close Inside High Volume Node: Triggers when the closing price enters a detected High Volume Node.
- Close Inside Low Volume Node: Triggers when the closing price enters a detected Low Volume Node.
- Close Inside Volume Peak: Triggers when the closing price enters a detected Volume Peak row.
- Close Inside Volume Peak Cluster: Triggers when the closing price enters the area of a Volume Peak cluster.
- Close Inside Volume Trough: Triggers when the closing price enters a detected Volume Trough row.
- Close Inside Volume Trough Cluster: Triggers when the closing price enters the area of a Volume Trough cluster.
Choose your preferred " Trigger " option:
- " Only Once ": The alert triggers the first time the condition is met.
- " Once Per Bar Close ": ( Recommended for most profile signals ) The alert triggers only after the current bar closes if the condition was true on that closed bar. This ensures signals are based on confirmed price action.
Customize the alert name, message, and notification preferences.
Click " Create ".
█ STRATEGY EXAMPLES
The following examples are for illustrative purposes only to demonstrate how the Volume Profile (PRO) can be used. They are not financial advice. Always conduct thorough backtesting and research.
1. POC as Dynamic Support/Resistance
Goal: Identify potential bounces or rejections from the Point of Control.
Setup: Enable "POC Line" (Regular or Developing) and observe price interaction.
Entry (Long):
- Price approaches the POC from above and shows signs of holding (e.g., bullish candlestick patterns, deceleration).
- Enter on confirmation of support at the POC.
Entry (Short):
- Price approaches the POC from below and shows signs of rejection (e.g., bearish candlestick patterns).
- Enter on confirmation of resistance at the POC.
Management: Stop-loss beyond the recent swing pivot or the POC itself after a confirmed break. Target the next significant volume node (HVN/LVN) or Value Area boundary.
2. Trading Low Volume Nodes (LVNs) as "Vacuum Zones"
Goal: Capitalize on rapid price movement through LVNs and their potential to become support/resistance once traversed.
Setup: Enable "Lowest Volume Nodes" to identify LVNs.
Entry (Long):
- Price breaks decisively above an LVN.
- Look for a retest of the top of the LVN as support. Enter long on confirmation.
Entry (Short):
- Price breaks decisively below an LVN.
- Look for a retest of the bottom of the LVN as resistance. Enter short on confirmation.
Concept: Price is expected to move quickly through LVNs (volume vacuum). Once price has passed through an LVN, that area of prior low acceptance can act as a new support/resistance zone.
Management: Stop-loss beyond the retested LVN. Target the next HVN or significant price level.
█ CONCLUSION
The Volume Profile (PRO) indicator offers a sophisticated and highly customizable approach to volume analysis. By providing clear visualizations of POC, Value Area, HVNs, LVNs, and Volume Peaks/Troughs, along with integrated alerts and developing levels, this tool empowers traders to identify critical price zones, understand market structure, and develop more nuanced trading strategies. Whether you're looking for precise entry points, areas of support and resistance, or confirmation of market sentiment, this Volume Profile indicator is an invaluable addition to your technical analysis toolkit.
█ IMPORTANT NOTES
⚠ Lookback vs. Calculated Bars Relationship: The value set in the " Lookback " input ( Calculation Settings ) must be less than half of the number of bars the indicator is set to calculate on your chart (referred to as " Calculated bars " in the script, typically controlled by TradingView's historical data loading or a calc_bars_count setting within the script's indicator() declaration – in this script, it is 1200 bars by default). For example, if "Calculated bars" is 1200, your Lookback should be less than 600. The default Lookback of 500 respects this. Setting a Lookback too high relative to available calculated bars can lead to errors or incorrect profile rendering.
⚠ Parameter Optimization: The default settings are starting points. Always adjust indicator parameters (Lookback, Number of Rows, VA%, etc.) based on the specific asset, its volatility, and the timeframe you are trading. Thorough backtesting is crucial.
⚠ Context is Key: Volume Profile is powerful, but its signals are best interpreted within the broader market context (trend, news, other technical indicators).
⚠ Lookback vs. Profile Stability: A shorter lookback makes the profile very responsive to recent action but less stable. A longer lookback provides more stable levels but may lag in fast-moving markets.
⚠ Number of Rows: Higher row counts offer more granularity but can impact performance and may show too much noise. Lower row counts offer a broader view but may obscure finer details.
⚠ Alert Confirmation: Using " Once Per Bar Close " for alerts is generally recommended to ensure signals are based on confirmed price action.
█ RISK DISCLAIMER
Trading involves a substantial risk of loss and is not suitable for all investors. The Volume Profile (PRO) indicator is provided for educational and informational purposes only . It does NOT constitute financial advice or a recommendation to buy or sell any asset. Indicator signals identify potential patterns based on historical data but do not guarantee future price movements or profitability. Always conduct your own thorough research, utilize multiple sources of information, and implement robust risk management practices before making any trading decisions. Past performance is not indicative of future results.
📊 Happy trading! 🚀
Volume Profile + Pivot Levels [ChartPrime]⯁ OVERVIEW
Volume Profile + Pivot Levels combines a rolling volume profile with price pivots to surface the most meaningful levels in your selected lookback window. It builds a left-side profile from traded volume, highlights the session’s Point of Control (PoC) , and then filters pivot highs/lows so only those aligned with significant profile volume are promoted to chart levels. Each promoted level extends forward until price retests it—so your chart stays focused on levels that actually matter.
⯁ KEY FEATURES
Rolling Volume Profile (Period & Resolution)
Calculates a profile over the last Period bars (default 200). The profile is discretized into Volume Profile Resolution bins (default 50) between the highest high and lowest low inside the window. Each bin accumulates traded volume and is drawn as a smooth left-side polyline for compact, lightweight rendering.
HL = array.new()
// collect highs/lows over 'start' bars to define profile range
for i = 0 to start - 1
HL.push(high ), HL.push(low )
H = HL.max(), L = HL.min()
bin_size = (H - L) / bins
// accumulate per-bin volume
for i = 0 to bins - 1
for j = 0 to start - 1
if close >= (L + bin_sizei) - bin_size and close < (L + bin_size*(i+1)) + bin_size
Bins += volume
Delta-Aware Coloring
The script tracks up-minus-down volume across all period to compute a net Delta . The profile, PoC line, and PoC label adopt a teal tone when net positive, and maroon when net negative—an immediate read on buyer/seller dominance inside the window.
Point of Control (PoC) + Volume Label
Automatically marks the highest-volume bin as the PoC . A horizontal PoC line extends to the last bar, and a label shows the absolute volume at the PoC. Toggle visibility via PoC input.
Pivot Detection with Volume Filter
Identifies raw pivots using Length (default 10) on both sides of the bar. Each candidate pivot is then validated against the profile: only pivots that land within their bin and meet or exceed the Filter % threshold (percentage of PoC volume) are promoted to chart levels. This removes weak, low-participation pivots.
// pivot promotion when volume% >= pivotFilter
if abs(mid - p.value) <= bin_size and volPercent >= pivotFilter
// draw labeled pivot level
line.new(p.index - pivotLength, p.value, p.index + pivotLength, p.value, width = 2)
Forward-Extending, Self-Stopping Levels
Promoted pivot levels extend forward as dotted rays. As soon as price intersects a level (high/low straddles it), that level stops extending—so your chart doesn’t clutter with stale zones.
Concise Level Labels (Volume + %)
Each promoted pivot prints a compact label at the pivot bar with its bin’s absolute volume and percentage of PoC volume (ordering flips for highs vs. lows for quick read).
Lightweight Visuals
The volume profile is rendered as a smooth polyline rather than dozens of boxes, keeping charts responsive even at higher resolutions.
⯁ SETTINGS
Volume Profile → Period : Lookback window used to compute the profile (max 500).
Volume Profile → Resolution : Number of bins; higher = finer structure.
Volume Profile → PoC : Toggle PoC line and volume label.
Pivots → Display : Show/hide volume-validated pivot levels.
Pivots → Length : Pivot detection left/right bars.
Pivots → Filter % 0–100 : Minimum bin strength (as % of PoC) required to promote a pivot level.
⯁ USAGE
Read PoC direction/color for a quick net-flow bias within your window.
Prioritize promoted pivot levels —they’re backed by meaningful participation.
Watch for first retests of promoted levels; the line will stop extending once tested.
Adjust Period / Resolution to match your timeframe (scalps → higher resolution, shorter period; swings → lower resolution, longer period).
Tighten or loosen Filter % to control how selective the level promotion is.
⯁ WHY IT’S UNIQUE
Instead of plotting every pivot or every profile bar, this tool cross-checks pivots against the profile’s internal volume weighting . You only see levels where price structure and liquidity overlap—clean, data-driven levels that self-retire after interaction, so you can focus on what the market actually defends.
Volume Profile with a few polylinesThe base of "Volume Profile with a few polylines" is another script of mine, Volume Profile (Maps) .
The structure of maps is used to gather the data. However, the drawings is done with polylines.
This enables coders to draw an entire volume profile with just a few polylines, while the range is broader.
This results in the benefit to draw more "lines" than with line.new() / box.new() alone.
🔶 CONCEPTS
🔹 Polylines
polyline.new creates a new polyline instance and displays it on the chart, sequentially connecting all of the points in the `points` array with line segments.
The segments in the drawing can be straight or curved depending on the `curved` parameter.
In this script, points are connected, starting from the bottom. The created line moves up until there is a price level where a volume value needs to be displayed,
at which the line goes to the left to the concerning volume value, coming back at the same price level until the line returns to its initial x-axis,
after which the line will continue to rise until all values are displayed.
A polyline can contain maximum 10000 points (10K).
Since the line has to go back and forth, each price/volume line takes 3 points.
In the case that 20K bars all have a different price, we would need 60K points, or just 6 polylines. A maximum of 100 polylines can be displayed.
The 3 highest volume values are displayed with line.new(), each with their own colour.
🔹 Maps
A map object is a collection that consists of key - value pairs
Each key is unique and can only appear once. When adding a new value with a key that the map already contains, that value replaces the old value associated with the key .
You can change the value of a particular key though, for example adding volume (value) at the same price (key), the latter technique is used in this script.
Volume is added to the map, associated with a particular price (default close, can be set at high, low, open,...)
When the map already contains the same price (key), the value (volume) is added to the existing volume at the associated price.
A map can contain maximum 50K values, which is more than enough to hold 20K bars (Basic 5K - Premium plan 20K), so the whole history can be put into a map.
🔹 Rounding function
This publication contains 2 round functions, which can be used to widen the Volume Profile
Round
• "Round" set at zero -> nothing changes to the source number
• "Round" set below zero -> x digit(s) after the decimal point, starting from the right side, and rounded.
• "Round" set above zero -> x digit(s) before the decimal point, starting from the right side, and rounded.
Example: 123456.789
0->123456.789
1->123456.79
2->123456.8
3->123457
-1->123460
-2->123500
Step
Another option is custom steps.
After setting "Round" to "Step", choose the desired steps in price,
Examples
• 2 -> 1234.00, 1236.00, 1238.00, 1240.00
• 5 -> 1230.00, 1235.00, 1240.00, 1245.00
• 100 -> 1200.00, 1300.00, 1400.00, 1500.00
• 0.05 -> 1234.00, 1234.05, 1234.10, 1234.15
•••
🔶 FEATURES
🔹 Volume * currency
Let's take as example BTCUSD, relative to USD, 10 volume at a price of 100 BTCUSD will be very different than 10 volume at a price of 30000 (1K vs. 300K)
If you want volume to be associated with USD, enable Volume * currency . Volume will then be multiplied by the price:
• 10 volume, 1 BTC = 100 -> 1000
• 10 volume, 1 BTC = 30K -> 300K
Polylines has the attributes curved & closed.
When "curved" is enabled the drawing will connect all points from the `points` array using curved line segments.
When "closed" is enabled the drawing will also connect the first point to the last point from the `points` array, resulting in a closed polyline.
They are default disabled, but can be enabled:
🔶 DETAILS
🔹 Put
When the map doesn't contain a price, it will be added, using map.put(id, key, value)
In our code:
map.put(originalMap, price, volume)
or
originalMap.put(price, volume)
A key (price) is now associated with a value (volume) -> key : value
Since all keys are unique, we don't have to know its position to extract the value, we just need to know the key -> map.get(id, key)
We use map.get() when a certain key already exists in the map, and we want to add volume with that value.
if originalMap.contains(price)
originalMap.put(price, originalMap.get(price) + volume)
-> At the last bar, all prices (source) are now associated with volume.
🔶 SETTINGS
Source : Set source of choice; default close , can be set as high , low , open , ...
Volume & currency : Enable to multiply volume with price (see Features )
Amount of bars : Set amount of bars which you want to include in the Volume Profile
🔹 Round -> ' Round/Step '
Round -> see Concepts
Step -> see Concepts
🔹 Display Volume Profile
Offset: shifts the Volume Profile (max. 500 bars to the right of last bar, see Features )
Max width Volume Profile: largest volume will be x bars wide, the rest is displayed as a ratio against largest volume (see Features )
Colours
Curved: make lines curved
Closed: connect last with first point
🔶 LIMITATIONS
• Lines won't go further than first bar (coded).
• The Volume Profile can be placed maximum 500 bar to the right of last price.
Volume Profile (Maps) [LuxAlgo]The Pine Script® developers have unleashed "maps"!
Volume Profile (Maps) displays volume, associated with price, above and below the latest price, by using maps
The largest and second-largest volume is highlighted.
🔶 USAGE
The proposed script can highlight more frequent closing prices/prices with the highest volume, potentially highlighting more liquid areas. The prices with the highest associated volume (in red and orange in the indicator) can eventually be used as support/resistance levels.
Voids within the volume profile can highlight large price displacements (volatile variations).
🔶 CONCEPTS
🔹 Maps
A map object is a collection that consists of key - value pairs
Each key is unique and can only appear once. When adding a new value with a key that the map already contains, that value replaces the old value associated with the key .
You can change the value of a particular key though, for example adding volume (value) at the same price (key), the latter technique is used in this script.
Volume is added to the map, associated with a particular price (default close, can be set at high, low, open,...)
When the map already contains the same price (key), the value (volume) is added to the existing volume at the associated price.
A map can contain maximum 50K values, which is more than enough to hold 20K bars (Basic 5K - Premium plan 20K), so the whole history can be put into a map.
🔹 Visible line/box limit
We can only display maximum 500 line.new() though.
The code locates the current (last) close, and displays volume values around this price, using lines, for example 250 lines above and 250 lines below current price.
If one side contains fewer values, the other side can show more lines, taking the maximum out of the 500 visible line limitation.
Example (max. 500 lines visible)
• 100 values below close
• 2000 values above close
-> 100 values will be displayed below close
-> 400 remaining -> 400 values will be displayed above close
Pushing the limits even further, when ' Amount of bars ' is set higher than 500, boxes - box.new() - will be used as well.
These have a limit of 500 as well, bringing the total limit to 1000.
Note that there are visual differences when boxes overlap against lines.
If this is confusing, please keep ' Amount of bars ' at max. 500 (then only lines will be used).
🔹 Rounding function
This publication contains 2 round functions, which can be used to widen the Volume Profile
Round
• "Round" set at zero -> nothing changes to the source number
• "Round" set below zero -> x digit(s) after the decimal point, starting from the right side, and rounded.
• "Round" set above zero -> x digit(s) before the decimal point, starting from the right side, and rounded.
Example: 123456.789
0->123456.789
1->123456.79
2->123456.8
3->123457
-1->123460
-2->123500
Step
Another option is custom steps.
After setting "Round" to "Step", choose the desired steps in price,
Examples
• 2 -> 1234.00, 1236.00, 1238.00, 1240.00
• 5 -> 1230.00, 1235.00, 1240.00, 1245.00
• 100 -> 1200.00, 1300.00, 1400.00, 1500.00
• 0.05 -> 1234.00, 1234.05, 1234.10, 1234.15
•••
🔶 FEATURES
🔹 Adjust position & width
🔹 Table
The table shows the details:
• Size originalMap : amount of elements in original map
• # higher: amount of elements, higher than last "close" (source)
• index "close" : index of last "close" (source), or # element, lower than source
• Size newMap : amount of elements in new map (used for display lines)
• # higher : amount of elements in newMap, higher than last "close" (source)
• # lower : amount of elements in newMap, lower than last "close" (source)
🔹 Volume * currency
Let's take as example BTCUSD, relative to USD, 10 volume at a price of 100 BTCUSD will be very different than 10 volume at a price of 30000 (1K vs. 300K)
If you want volume to be associated with USD, enable Volume * currency . Volume will then be multiplied by the price:
• 10 volume, 1 BTC = 100 -> 1000
• 10 volume, 1 BTC = 30K -> 300K
Disabled
Enabled
🔶 DETAILS
🔹 Put
When the map doesn't contain a price, it will be added, using map.put(id, key, value)
In our code:
map.put(originalMap, price, volume)
or
originalMap.put(price, volume)
A key (price) is now associated with a value (volume) -> key : value
Since all keys are unique, we don't have to know its position to extract the value, we just need to know the key -> map.get(id, key)
We use map.get() when a certain key already exists in the map, and we want to add volume with that value.
if originalMap.contains(price)
originalMap.put(price, originalMap.get(price) + volume)
-> At the last bar, all prices (source) are now associated with volume.
🔹 Copy & sort
Next, every key of the map is copied and sorted (array of keys), after which the index (idx) is retrieved of last (current) price.
copyK = originalMap.keys().copy()
copyK.sort()
idx = copyK.binary_search_leftmost(src)
Then left and right side of idx is investigated to show a maximum amount of lines at both sides of last price.
🔹 New map & display
The keys (from sorted array of copied keys) that will be displayed are put in a new map, with the associated volume values from the original map.
newMap = map.new()
🔹 Re-cap
• put in original amp (price key, volume value)
• copy & sort
• find index of last price
• fetch relevant keys left/right from that index
• put keys in new map and fetch volume associated with these keys (from original map)
Simple example (only show 5 lines)
bar 0, price = 2, volume = 23
bar 1, price = 4, volume = 3
bar 2, price = 8, volume = 21
bar 3, price = 6, volume = 7
bar 4, price = 9, volume = 13
bar 5, price = 5, volume = 85
bar 6, price = 3, volume = 13
bar 7, price = 1, volume = 4
bar 8, price = 7, volume = 9
Original map:
Copied keys array:
Sorted:
-> 5 keys around last price (7) are fetched (5, 6, 7, 8, 9)
-> keys are placed into new map + volume values from original map
Lastly, these values are displayed.
🔶 SETTINGS
Source : Set source of choice; default close , can be set as high , low , open , ...
Volume & currency : Enable to multiply volume with price (see Features )
Amount of bars : Set amount of bars which you want to include in the Volume Profile
Max lines : maximum 1000 (if you want to use only lines, and no boxes -> max. 500, see Concepts )
🔹 Round -> ' Round/Step '
Round -> see Concepts
Step -> see Concepts
🔹 Display Volume Profile
Offset: shifts the Volume Profile (max. 500 bars to the right of last bar, see Features )
Max width Volume Profile: largest volume will be x bars wide, the rest is displayed as a ratio against largest volume (see Features )
Show table : Show details (see Features )
🔶 LIMITATIONS
• Lines won't go further than first bar (coded).
• The Volume Profile can be placed maximum 500 bar to the right of last price.
• Maximum 500 lines/boxes can be displayed
Volume Profile (LVN + HVN Detection)This script builds a customizable session-by-session Volume Profile with extended features for deeper order-flow analysis. It lets traders visualize where the most and least trading activity occurred in any chosen timeframe and resolution, directly on the chart.
🔑 Features
Dynamic Volume Profile
Adjustable Rows and Resolution Timeframe for fine-tuned granularity. Profiles automatically update on each session change.
Volume Point of Control (VPOC)
Highlights the single price level with the highest traded volume.
Option to extend the last N VPOCs forward in time.
Optional date labels for extended VPOCs.
High Volume Nodes (HVNs)
Detects and plots areas/levels of concentrated activity.
Configurable strength filter to control validation.
Display as solid/dotted lines (Levels) or filled Areas.
Color-coded relative to prior session close.
Low Volume Nodes (LVNs) (NEW)
Identifies thin-volume zones often acting as rejection or breakout points.
Configurable strength filter.
Display as dotted Levels or shaded Areas.
Color-coded relative to prior session close.
Profile Extend
Choose how much of the profile should extend into the next session for forward-looking context.
📊 Use Cases
Spotting value areas and key auction levels.
Finding support/resistance zones via HVNs and LVNs.
Tracking VPOC shifts across sessions for directional bias.
Identifying low-volume rejection zones where price may accelerate.
⚙️ Customization
Profile rows, timeframe, and resolution.
VPOC line width, colors, and label size.
HVN/LVN strength, type (Levels/Areas), and color themes.
Volume Profile (Simple)Simple Volume Profile (Simple)
Master the Market's Structure with a Clear View of Volume
by mercaderoaurum
The Simple Volume Profile (Simple) indicator removes the guesswork by showing you exactly where the most significant trading activity has occurred. By visualizing the Point of Control (POC) and Value Area (VA) for today and yesterday, you can instantly identify the price levels that matter most, giving you a critical edge in your intraday trading.
This tool is specifically optimized for day trading SPY on a 1-minute chart, but it's fully customizable for any symbol or timeframe.
Key Features
Multi-Day Analysis: Automatically plots the volume profiles for the current and previous trading sessions, allowing you to see how today's market is reacting to yesterday's key levels.
Automatic Key Level Plotting: Instantly see the most important levels from each session:
Point of Control (POC): The single price level with the highest traded volume, acting as a powerful magnet for price.
Value Area High (VAH): The upper boundary of the area where 50% of the volume was traded. It often acts as resistance.
Value Area Low (VAL): The lower boundary of the 50% value area, often acting as support.
Extended Levels: The POC, VAH, and VAL from previous sessions are automatically extended into the current day, providing a clear map of potential support and resistance zones.
Customizable Sessions: While optimized for the US stock market, you can define any session time and time zone, making it a versatile tool for forex, crypto, and futures traders.
Core Trading Strategies
The Simple Volume Profile helps you understand market context. Instead of trading blind, you can now make decisions based on where the market has shown the most interest.
1. Identifying Support and Resistance
This is the most direct way to use the indicator. The extended lines from the previous day are your roadmap for the current session.
Previous Day's POC (pPOC): This is the most significant level. Watch for price to react strongly here. It can act as powerful support if approached from above or strong resistance if approached from below.
Previous Day's VAH (pVAH): Expect this level to act as initial resistance. A clean break above pVAH can signal a strong bullish trend.
Previous Day's VAL (pVAL): Expect this level to act as initial support. A firm break below pVAL can indicate a strong bearish trend.
Example Strategy: If SPY opens and rallies up to the previous day's VAH and stalls, this is a high-probability area to look for a short entry, with a stop loss just above the level.
2. The "Open-Drive" Rejection
How the market opens in relation to the previous day's value area is a powerful tell.
Open Above Yesterday's Value Area: If the market opens above the pVAH, it signals strength. The first pullback to test the pVAH is often a key long entry point. The level is expected to flip from resistance to support.
Open Below Yesterday's Value Area: If the market opens below the pVAL, it signals weakness. The first rally to test the pVAL is a potential short entry, as the level is likely to act as new resistance.
3. Fading the Extremes
When price pushes far outside the previous day's value area, it can become overextended.
Reversal at Highs: If price rallies significantly above the pVAH and then starts to lose momentum (e.g., forming bearish divergence on RSI or a topping pattern), it could be an opportunity to short the market, targeting a move back toward the pVAH or pPOC.
Reversal at Lows: Conversely, if price drops far below the pVAL and shows signs of bottoming, it can be a good opportunity to look for a long entry, targeting a reversion back to the value area.
Recommended Settings (SPY Intraday)
These settings are the default and are optimized for scalping or day trading SPY on a 1-minute chart.
Value Area (%): 50%. This creates a tighter, more sensitive value area, perfect for identifying the most critical intraday zones.
Number of Rows: 1000. This high resolution is essential for a low-volatility instrument like SPY, ensuring that the profile is detailed and the levels are precise.
Session Time: 0400-1800 in America/New_York. This captures the full pre-market and core session, which is crucial for understanding the day's complete volume story.
Ready to trade with an edge? Add the Simple Volume Profile (Multi-Day) to your chart now and see the market in a new light!
Volume Profile [ActiveQuants]The Volume Profile indicator visualizes the distribution of trading volume across price levels over a user-defined historical period. It identifies key liquidity zones, including the Point of Control (POC) (price level with the highest volume) and the Value Area (price range containing a specified percentage of total volume). This tool is ideal for traders analyzing support/resistance levels, market sentiment , and potential price reversals .
█ CORE METHODOLOGY
Vertical Price Rows: Divides the price range of the selected lookback period into equal-height rows.
Volume Aggregation: Accumulates bullish/bearish or total volume within each price row.
POC: The row with the highest total volume.
Value Area: Expands from the POC until cumulative volume meets the user-defined threshold (e.g., 70%).
Dynamic Visualization: Rows are plotted as horizontal boxes with widths proportional to their volume.
█ KEY FEATURES
- Customizable Lookback & Resolution
Adjust the historical period ( Lookback ) and granularity ( Number of Rows ) for precise analysis.
- Configurable Profile Width & Horizontal Offset
Control the relative horizontal length of the profile rows, and set the distance from the current bar to the POC row’s anchor.
Important: Do not set the horizontal offset too high. Indicators cannot be plotted more than 500 bars into the future.
- Value Area & POC Highlighting
Set the percentage of total volume required to form the Value Area , ensuring that key volume levels are clearly identified.
Value Area rows are colored distinctly, while the POC is marked with a bold line.
- Flexible Display Options
Show bullish/bearish volume splits or total volume.
Place the profile on the right or left of the chart.
- Gradient Coloring
Rows fade in color intensity based on their relative volume strength .
- Real-Time Adjustments
Modify horizontal offset, profile width, and appearance without reloading.
█ USAGE EXAMPLES
Example 1: Basic Volume Profile with Value Area
Settings:
Lookback: 500 bars
Number of Rows: 100
Value Area: 70%
Display Type: Up/Down
Placement: Right
Image Context:
The profile appears on the right side of the chart. The POC (orange line) marks the highest volume row. Value Area rows (green/red) extend above/below the POC, containing 70% of total volume.
Example 2: Total Volume with Gradient Colors
Settings:
Lookback: 800 bars
Number of Rows: 100
Profile Width: 60
Horizontal Offset: 20
Display Type: Total
Gradient Colors: Enabled
Image Context:
Rows display total volume in a single color with gradient transparency. Darker rows indicate higher volume concentration.
Example 3: Left-Aligned Profile with Narrow Value Area
Settings:
Lookback: 600 bars
Number of Rows: 100
Profile Width: 45
Horizontal Offset: 500
Value Area: 50%
Profile Placement: Left
Image Context:
The profile shifts to the left, with a tighter Value Area (50%).
█ USER INPUTS
Calculation Settings
Lookback: Historical bars analyzed (default: 500).
Number of Rows: Vertical resolution of the profile (default: 100).
Profile Width: Horizontal length of rows (default: 50).
Horizontal Offset: Distance from the current bar to the POC (default: 50).
Value Area (%): Cumulative volume threshold for the Value Area (default: 70%).
Volume Display: Toggle between Up/Down (bullish/bearish) or Total volume.
Profile Placement: Align profile to the Right or Left of the chart.
Appearance
Rows Border: Customize border width/color.
Gradient Colors: Enable fading color effects.
Value Area Colors: Set distinct colors for bullish and bearish Value Area rows.
POC Line: Adjust color, width, and visibility.
█ CONCLUSION
The Volume Profile indicator provides a dynamic, customizable view of market liquidity. By highlighting the POC and Value Area, traders can identify high-probability reversal zones, gauge market sentiment, and align entries/exits with key volume levels.
█ IMPORTANT NOTES
⚠ Lookback Period: Shorter lookbacks prioritize recent activity but may omit critical levels.
⚠ Horizontal Offset Limitation: Avoid excessively high offsets (e.g., close to ±300). TradingView restricts plotting indicators more than 500 bars into the future, which may truncate or hide the profile.
⚠ Risk Management: While the indicator highlights areas of concentrated volume, always use it in combination with other technical analysis tools and proper risk management techniques.
█ RISK DISCLAIMER
Trading involves substantial risk. The Volume Profile highlights historical liquidity but does not predict future price movements. Always use stop-loss orders and confirm signals with additional analysis. Past performance is not indicative of future results.
📊 Happy trading! 🚀
Volume profile [Signals] - By Leviathan [Mindyourbuisness]Market Sessions and Volume Profile with Sweep Signals - Based on Leviathan's Volume Profile
This indicator is an enhanced version of Leviathan's Volume Profile indicator, adding session-based value area analysis and sweep detection signals. It combines volume profile analysis with market structure concepts to identify potential reversal opportunities.
Features
- Session-based volume profiles (Daily, Weekly, Monthly, Quarterly, Yearly)
- Forex sessions support (Tokyo, London, New York)
- Value Area analysis with POC, VAH, and VAL levels
- Extended level visualization for the last completed session
- Sweep detection signals for key value area levels
Sweep Signals Explanation
The indicator detects two types of sweeps at VAH, VAL, and POC levels:
Bearish Sweeps (Red Triangle Down)
Conditions:
- Price makes a high above the level (VAH/VAL/POC)
- Closes below the level
- Closes below the previous candle's low
- Previous candle must be bullish
Trading Implication: Suggests a failed breakout and potential reversal to the downside. These sweeps often indicate stop-loss hunting above key levels followed by institutional selling.
Bullish Sweeps (Green Triangle Up)
Conditions:
- Price makes a low below the level (VAH/VAL/POC)
- Closes above the level
- Closes above the previous candle's high
- Previous candle must be bearish
Trading Implication: Suggests a failed breakdown and potential reversal to the upside. These sweeps often indicate stop-loss hunting below key levels followed by institutional buying.
Trading Guidelines
1. Use sweep signals in conjunction with the overall trend
2. Look for additional confirmation like:
- Volume surge during the sweep
- Price action patterns
- Support/resistance levels
3. Consider the session's volatility and time of day
4. More reliable signals often occur at VAH and VAL levels
5. POC sweeps might indicate stronger reversals due to their significance as fair value levels
Notes
- The indicator works best on higher timeframes (1H and above)
- Sweep signals are more reliable during active market hours
- Consider using multiple timeframe analysis for better confirmation
- Past performance is not indicative of future results
Credits: Original Volume Profile indicator by Leviathan
Volume Profile - Custom Range, Interactive by DGTVolume Profile - Custom Range aims to display trading activity at specific price levels over user defined Custom Range of trading. Start and End Time is Interactive , they can be adjusted simply by clicking on the chart and drag the lines to specify the desired custom range. Same as is with the drawing tools available in TV
Please note, while switching between timeframes or switching to different instruments with different exchange timezones you may need to adjust the locations in case the plotting is not displied
Volume Profile - Custom Range is plotted as two horizontal histograms on the finacial isntrumnet's chart that highlights the trader's common interest at specific price levels as well as aims to reveal dominant party of who is in control, bulls or bears
You are also invated to galnce at Volume-Profile-and-Volume-Indicator , Anchored-Volume-Profile , and Price Action-Support-Resistance for different perspective of Volume Profiles
Special thanks to everyone who commented and presented their valuable suggestions
Disclaimer: Trading success is all about following your trading strategy and the indicators should fit within your trading strategy, and not to be traded upon solely
The script is for informational and educational purposes only. Use of the script does not constitutes professional and/or financial advice. You alone the sole responsibility of evaluating the script output and risks associated with the use of the script. In exchange for using the script, you agree not to hold dgtrd TradingView user liable for any possible claim for damages arising from any decision you make based on use of the script
Volume Profile & Smart Money Explorer🔍 Volume Profile & Smart Money Explorer: Decode Institutional Footprints
Master the art of institutional trading with this sophisticated volume analysis tool. Track smart money movements, identify peak liquidity windows, and align your trades with major market participants.
🌟 Key Features:
📊 Triple-Layer Volume Analysis
• Total Volume Patterns
• Directional Volume Split (Up/Down)
• Institutional Flow Detection
• Real-time Smart Money Tracking
• Historical Pattern Recognition
⚡ Smart Money Detection
• Institutional Trade Identification
• Large Block Order Tracking
• Smart Money Concentration Periods
• Whale Activity Alerts
• Volume Threshold Analysis
📈 Advanced Profiling
• Hourly Volume Distribution
• Directional Bias Analysis
• Liquidity Heat Maps
• Volume Pattern Recognition
• Custom Threshold Settings
🎯 Strategic Applications:
Institutional Trading:
• Track Big Player Movements
• Identify Accumulation/Distribution
• Follow Smart Money Flow
• Detect Institutional Trading Windows
• Monitor Block Orders
Risk Management:
• Identify High Liquidity Windows
• Avoid Thin Market Periods
• Optimize Position Sizing
• Track Market Participation
• Monitor Volume Quality
Market Analysis:
• Volume Pattern Recognition
• Smart Money Flow Analysis
• Liquidity Window Identification
• Institutional Activity Cycles
• Market Depth Analysis
💡 Perfect For:
• Professional Traders
• Volume Profile Traders
• Institutional Traders
• Risk Managers
• Algorithmic Traders
• Smart Money Followers
• Day Traders
• Swing Traders
📊 Key Metrics:
• Normalized Volume Profiles
• Institutional Thresholds
• Directional Volume Split
• Smart Money Concentration
• Historical Patterns
• Real-time Analysis
⚡ Trading Edge:
• Trade with Institution Flow
• Identify Optimal Entry Points
• Recognize Distribution Patterns
• Follow Smart Money Positioning
• Avoid Thin Markets
• Capitalize on Peak Liquidity
🎓 Educational Value:
• Understand Market Structure
• Learn Volume Analysis
• Master Institutional Patterns
• Develop Market Intuition
• Track Smart Money Flow
🛠️ Customization:
• Adjustable Time Windows
• Flexible Volume Thresholds
• Multiple Timeframe Analysis
• Custom Alert Settings
• Visual Preference Options
Whether you're tracking institutional flows in crypto markets or following smart money in traditional markets, the Volume Profile & Smart Money Explorer provides the deep insights needed to trade alongside the biggest players.
Transform your trading from retail guesswork to institutional precision. Know exactly when and where smart money moves, and position yourself ahead of major market shifts.
#VolumeProfile #SmartMoney #InstitutionalTrading #MarketAnalysis #TradingView #VolumeAnalysis #CryptoTrading #ForexTrading #TechnicalAnalysis #Trading #PriceAction #MarketStructure #OrderFlow #Liquidity #RiskManagement #TradingStrategy #DayTrading #SwingTrading #AlgoTrading #QuantitativeTrading
Volume Profile Matrix [LuxAlgo]The Volume Profile Matrix indicator extends from regular volume profiles by also considering calculation intervals within the calculation window rather than only dividing the calculation window in rows.
Note that this indicator is subject to repainting & back-painting, however, treating the indicator as a tool for identifying frequent points of interest can still be very useful.
🔶 SETTINGS
Lookback: Number of most recent bars used to calculate the indicator.
Columns: Number of columns (intervals) used to calculate the volume profile matrix.
Rows: Number of rows (intervals) used to calculate the volume profile matrix.
🔶 USAGE
The Volume Profile Matrix indicator can be used to obtain more information regarding liquidity on specific time intervals. Instead of simply dividing the calculation window into equidistant rows, the calculation is done through a grid.
Grid cells with trading activity occurring inside them are colored. More activity is highlighted through a gradient and by default, cells with a color that are closer to red indicate that more trading activity took place within that cell. The cell with the highest amount of trading activity is always highlighted in yellow.
Each interval (column) includes a point of control which highlights an estimate of the price level with the highest traded volume on that interval. The level with the highest traded volume of the overall grid is extended to the most recent bar.
volume profile ranking indicator📌 Introduction
This script implements a volume profile ranking indicato for TradingView. It is designed to visualize the distribution of traded volume over price levels within a defined historical window. Unlike TradingView’s built-in Volume Profile, this script gives full customization of the profile drawing logic, binning, color gradient, and the ability to anchor the profile to a specific date.
⚙️ How It Works (Logic)
1. Inputs
➤POC Lookback Days (lookback): Defines how many bars (days) to look back from a selected point to calculate the volume distribution.
➤Bin Count (bin_count): Determines how many price bins (horizontal levels) the price range will be divided into.
➤Use Custom Lookback Date (useCustomDate): Enables/disables manually selecting a backtest start date.
➤Custom Lookback Date (customDate): When enabled, the profile will calculate volume based on this date instead of the most recent bar.
2. Target Bar Determination
➤If a custom date is selected, the script searches for the bar closest to that date within 1000 bars.
➤If not, it defaults to the latest bar (bar_index).
➤The profile is drawn only when the current bar is close to the target bar (within ±2 bars), to avoid unnecessary recalculations and performance issues.
3. Volume Binning
➤The price range over the lookback window is divided into bin_count segments.
➤For each bar within the lookback window, its volume is added to the appropriate bin based on price.
➤If the price falls outside the expected range, it is clamped to the first or last bin.
4. Ranking and Sorting
➤A bubble sort ranks each bin by total volume.
➤The most active bin (POC, or Point of Control) is highlighted with a thicker bar.
5. Rendering
➤Horizontal bars (line.new) represent volume intensity in each price bin.
➤Each bar is color-coded by volume heat: more volume = more intense color.
➤Labels (label.new) show:
➤Total volume
➤Rank
➤Percentage of total volume
➤Price range of the bin
🧑💻 How to Use
1. Add the Script to Your Chart
➤Copy the code into TradingView’s Pine Script editor and add it to your chart.
2. Set Lookback Period
➤Default is 252 bars (about one year for daily charts), but can be changed via the input.
3. (Optional) Use Custom Date
●Toggle "Use Custom Lookback Date" to true.
➤Pick a date in the "Custom Lookback Date" input to anchor the profile.
4. Analyze the Volume Distribution
➤The longest (thickest) red/orange bar represents the Point of Control (POC) — the price with the most volume traded.
➤Other bars show volume distribution across price.
➤Labels display useful metrics to evaluate areas of high/low interest.
✅ Features
🔶 Customizable anchor point (custom date).
🔶Adjustable bin count and lookback length.
🔶 Clear visualization with heatmap coloring.
🔶 Lightweight and performance-optimized (especially with the shouldDrawProfile filter)
Volume Profile PlusThis indicator provides a high-resolution and high-precision implementation of Volume Profile with flexible range settings. Its key features include:
1. Support for a high resolution of up to 2,500 rows.
2. Capability to examine lower timeframe bars (default 5,000 intra-bars) for enhanced precision.
3. Three range modes — "Visible Range", "Anchored Range", and "All Range".
4. Highlighting of Point of Control and Value Area.
5. Extensive customization options allowing users to configure dimensions, on-chart placements, and color schemes.
🔵 Settings
The settings screen, along with the explanations for each setting, is provided below:
🔵 High Resolution using Polyline
Inspired by @fikira, this indicator utilizes the newly introduced `polyline` type in PineScript to plot the volume profile. It employs a single polyline instance to represent the entire histogram. With each polyline instance supporting up to 10,000 points and each histogram row requiring 4 points, this indicator can accommodate 2500 rows, resulting in a significantly higher resolution compared to conventional volume profile indicators that use `line`s or `box`es to draw the histogram.
🔵 High Precision Data-binning using Lower Timeframe Data
Conventional volume profile indicators often face one or both of the following limitations:
1. They only consider volume within the chart's current timeframe.
2. They assign each bar's total volume to a single price bucket based on the bar's average price, rather than distributing volume across multiple price buckets.
As a result, when the number of bars in the chart is low, those indicators may provide imprecise results, making it difficult to accurately identify significant volume nodes and the point of control.
To address these limitations and enhance accuracy, this indicator examines data from lower timeframes and distributes the volume to fine-grained price buckets. It intelligently selects an appropriate lower timeframe to ensure precise output while complying with a maximum specified number of bars to maintain good performance.
🔵 Three Range Modes
This indicator offers users the flexibility to choose from three range modes:
1. Visible Range (Default Mode): In this mode, the volume profile calculation begins at the time of the left-most bar displayed in the current viewport. As the user scrolls through the viewport, the volume profile updates automatically.
2. Anchored Range: This mode allows the user to set the start time either by using the datetime input boxes or by dragging the anchor line on the chart.
3. All Range: In this mode, the volume profile calculation is based on all the historical bars available in the chart.
Volume Profile with Delta [TradeMaster Lite]The indicator estimates and displays the total traded volume and it's delta** at each price level during the user-defined period. It can be used to identify key support and resistance levels, determine logical take profit and stop loss levels, identify balanced and unbalanced markets and determine trend strength. The indicator offers different approaches to visualize the volume profile and can be chosen based on your preferred trading strategy and analysis method. The position and size of the Volume Profile is fully customizable, it can even be flipped if needed!
Three different display types (cosmetic effect only):
Classic
Compact
Modern
The Lite version offers three different range types:
Visible Range: displays the volume profile for the visible range of bars or candles on the chart. It adjusts dynamically as you change the chart view making it ideal for the modern trader who values both precision and simplicity.
Open End: displays the volume profile from a specific start date without a defined end, including real delta data. It provides an overview of the volume activity across all price levels of the examined period.
Fixed End: lets you define a specific start and end point for the volume profile. It can be useful if you want to analyze the volume activity within a specific time period or price range.
👉 Usage
The Volume Profile is a histogram that shows the estimated trading volume at certain price levels, how much was sold and how much was bought of the asset. The longer the histogram, the greater the trading volume at that price level. The Delta estimates which side was dominant at that price level and by how much.
To make the most out of the indicator, you can look for
pullbacks to high volume nodes or value areas,
initial equilibrium pullbacks,
buy or sell opportunities for price reversals,
institutional order flow.
The largest histogram node is called the Point of Control (POC). It is the estimated real market price of a coin. There's a common belief that when the price is above this point, the market sentiment is bullish, and when it's below, the sentiment turns bearish. It can act as a strong support if the price is above it and as strong resistance if the price is below it.
Price action usually finds the most support and resistance and the edge of the high volume areas. The indicator can mark these as VAH and VAL (Value Area High and Low).
In addition to the indication of support and resistance zones, the volume profile can also be used to infer the speed of price movements. At levels where there is little trading volume, faster and more volatile price movements are expected. In such scenarios the price may fall or rise faster to the next high volume zone.
👉 General advice
Confirming Signals with other indicators:
As with all technical indicators, it is important to confirm potential signals with other analytical tools, such as support and resistance levels, as well as indicators like RSI, MACD, and volume. This helps increase the probability of a successful trade.
Use proper risk management:
When using this or any other indicator, it is crucial to have proper risk management in place. Consider implementing stop-loss levels and thoughtful position sizing.
Combining with other technical indicators:
The indicator can be effectively used alongside other technical indicators to create a comprehensive trading strategy and provide additional confirmation.
Keep in Mind:
Thorough research and backtesting are essential before making any trading decisions. Furthermore, it's crucial to have a solid understanding of the indicator and its behavior. Additionally, incorporating fundamental analysis and considering market sentiment can be vital factors to take into account in your trading approach.
Limitations:
The Lite version shows simple delta with current timeframe volume data.
The indicators within the TradeMaster Lite package aim for simplicity and efficiency, while retaining their original purpose and value. Some settings, functions or visuals may be simpler than expected.
**The Delta estimates which side was dominant at that price level and by how much. It is the difference between bull and bear volume of the candle.
⭐ Conclusion
We hold the view that the true path to success is the synergy between the trader and the tool, contrary to the common belief that the tool itself is the sole determinant of profitability. The actual scenario is more nuanced than such an oversimplification. Our aim is to offer useful features that meet the needs of the 21st century and that we actually use.
🛑 Risk Notice:
Everything provided by trademasterindicator – from scripts, tools, and articles to educational materials – is intended solely for educational and informational purposes. Past performance does not assure future returns.
Angled Volume Profile [Trendoscope]Volume profile is useful tool to understand the demand and supply zones on horizontal level. But, what if you want to measure the volume levels over trend line? In trending markets, the feature to measure volume over angled levels can be very useful for traders who use these measures. Here is an attempt to provide such tool.
🎲 How to use
🎯 Interactive input for selecting starting point and angle.
Upon loading the script, you will be prompted to select
Start time and price - this is a point which you can select by moving the maroon highlighted label.
End price - though this is shown as maroon bullet, this is price only input. Hence, when you click on the bullet, a horizontal line will appear. Users can move the line to use different End price.
Start and End price are used for identifying the angle at which volume profile need to be calculated. Whereas start time is used as starting time of the volume profile. Last bar of the chart is considered as ending bar.
🎯 Other settings.
From settings, users can select the colour of volume profile and style. Step multiplier defines the distance at which the profile lines needs to be drawn. Higher multiplier leads to less dense profile lines whereas lower multiplier leads to higher density of profile lines.
🎲 Limitations
🎯 Max 500 lines
Pinescript only allows max 500 lines on an indicator. Due to this, if we set very low multiplier - this can lead to more than 500 profile lines. Due to this some lines can get removed.
On the contrary, if multiplier is too high, then you will see very few lines which may not be meaningful.
Hence, it is important to select optimal multiplier based on your timeframe
🎯 No updates on new bar
Since the profile can spawn many bars, it is not possible to recalculate the whole volume profile when price creates new bars. Hence, there will not be visual update when new bars are created. But, to update the chart, users only need to make another movement of Start or ending point on interactive input.
Volume Profile + VAH, VAL, and POCWhat it is
A clean, on-chart volume profile that approximates your visible range using a configurable Bars Back window. It builds a horizontal histogram of volume by price, splits each price bin into Buy vs Sell volume, draws POC, and computes Value Area High/Low (VAH/VAL). A Stealth Mode toggle switches to a subtle grayscale palette for low-key charts.
Why this instead of the built-in VPVR?
Buy/Sell split per bin: See which prices were defended by buyers vs sellers, not just total volume.
Value Area from POC outward: Classic expansion method until the selected % of total volume (default 70%).
Sleek borders & Stealth Mode: Crisp bin outlines and a one-click professional colorway.
Deterministic & fast: No sessions or anchors needed—set your Bars Back and go.
How it works (under the hood)
Window selection – Pine can’t read your viewport, so we approximate it with Bars Back (user input).
Binning – The window’s price range is divided into N bins.
Volume allocation – For each bar in the window:
Distribute Across Hi–Lo (optional): Spread volume across all bins the bar overlaps, weighted by overlap; or
Single-price mode: Assign all volume to one bin using a representative price (hlc3).
Buy/Sell split (two methods):
Body Proportional (recommended): Split by relative up/down body size (|close−open|).
Up/Down Candle: 100% buy if close ≥ open, else 100% sell.
POC & VA: Point of Control is the bin with max total volume. VAH/VAL expands from POC toward the higher-volume neighbor until the selected % of total volume is included.
Reading the visuals
Horizontal bars (right side): Total volume per price bin.
Left sub-segment = Sell volume
Right sub-segment = Buy volume
POC line: Price level with peak total volume.
VAH / VAL (dashed): Upper and lower bounds of the selected Value Area.
Borders: Each bin has a clean outer outline so the profile looks tight and organized.
Stealth Mode: Grayscale palette that preserves contrast without loud colors.
Key inputs (organized for clarity)
Theme
Stealth Mode: Toggles the grayscale look.
Core
Price Bins: Vertical resolution of the profile.
Lookback (Bars): Approximates your visible range.
Style
Profile Width (bars): How far the histogram extends to the right.
Bin Border Width: Outline thickness.
Markers & Lines
Show POC, Show VAH/VAL, Value Area %, VA line width.
Advanced
Distribute Volume Across Hi–Lo: More accurate, heavier compute.
Buy/Sell Split Method: Body Proportional (realistic) or Up/Down (simple).
Tips & best practices
Start with Body Proportional + Distribute Across ON for intraday accuracy.
If the chart lags, reduce Price Bins or Bars Back, or switch off distribution.
For small windows, fewer bins often looks cleaner (e.g., 30–60).
Stealth Mode plays nicely with both dark and light chart themes.
Limitations & notes
Viewport: Pine can’t access the actual visible bars; Bars Back is a practical stand-in.
Buy/Sell split: This is an approximation from candle bodies, not true bid/ask delta.
Designed for overlay; profile renders to the right of the latest bar.
Volume Profile Histogram [SS]I usually (and by usually, I mean the past year xD) release a significant indicator as my Christmas gift to the community on Christmas Eve. Last year, it was the Z-Score buy and sell signal; this year, it's something a little more conventional. So here is this year’s gift—hope you like it! 🎁
Seems like everyone has their take on Volume Profiles (aka SVP or VSP). I decided to create one, and in true Steversteves fashion, you can expect to find all the goodies that come with most of my stuff, including a volume profile presented in a bell-curve/histogram style (chart above) and statistical frequency tables showing the cases by ranges:
And it wouldn't be a true Steversteves indicator without some kind of ATR thing:
So, what does it do?
At the end of the day, it is a form of an SVP indicator. However, it is meant to operate on a larger scale, sorting volume in a traditional bell-curve style. In addition to displaying volume, it breaks down buying vs. selling volume. Selling volume is classified as such when the open is greater than close, while buying is when close is greater than open. This breakdown allows you to see the distribution, by price range, of where selling and buying occur.
This permits the indicator to provide 2 Points of Control (POCs). A POC is defined as an area of high volume activity. Because buying and selling volumes are broken down into two, we can identify areas with high selling and areas with high buying. Sometimes they coincide, sometimes they differ.
If we look at SQQQ, for example:
We can see that the bearish point of control is one point below the bullish POC. This is interesting because it essentially shows where people may be "panic selling" or setting their stop-outs. If SQQQ drops below 18.8, then it's likely to trigger panic selling, as indicated by the histogram.
Conversely, we can observe that traders tend to position long between $18 and $24. The POC is noted in the stats table and also displayed on the chart. Bullish POC is shown in purple, bearish in yellow. These, of course, can be toggled off.
The Frequency Table:
The frequency table shows how many observations were obtained in each price range. The histogram illustrates the cumulative volume traded, while the frequency simply counts how many cases occurred over the lookback period.
ATR Range Analytics by Volume:
The indicator also has the ability to display range analytics by volume. When you toggle on the range analytics by volume option, a range chart will appear:
www.tradingview.com
The range chart goes from the minimum recorded volume to the maximum recorded volume in the period, showing the average range and direction associated with this volume. This is crucial to pay attention to because not all stocks behave the same way.
For example, in the chart above (AMD), we can see that low volume produces a general bearish bias, and high volume produces a general bullish bias. However, if we look at the range analytics for SPY:
Low volume has the inverse effect. Low volume is associated with a more bullish bias, and high volume indicates a more bearish bias. In the ATR chart, the threshold volume to transition from bullish bias to bearish bias is approximately > 78,607,268 traded shares.
The Stats Table:
The stats table can be toggled on or off. It simply displays the POCs and the time range for the VSP. The default time range is 1 trading year (252 days), assuming you are on the daily timeframe. However, you can use this on any timeframe.
The percentages displayed in the histogram is the cumulative percent of buying and selling volume independently. So when you see the percentage on the selling histogram, its the percent of cumulative selling only. Same for the buying.
And that's the indicator! I hope you enjoy it. Let me know your thoughts. I hope you all have safe holidays, a Merry Christmas for you North Americans, and a Happy Christmas for you UKers, and whatever else you celebrate/care about and do! Safe trades, everyone, and enjoy your holidays! 🎁🎄🎄🎄⭐⭐⭐ 🕎 🕎 🕎
Volume Profile Segment Difference «NoaTrader»If you use volume profile, then you might have countered wanting to know a segment of the chart's volume profile relative to the whole volume profile. This indicator tries to solve that problem.
When you add it to the chart, first it asks you the start and end point of the segment you want, then it draws the whole chart's volume profile and shows the selected segments relative volume with a different color (blue default).
The default settings are good for a Bitcoin daily chart, so don't forget to change the settings for other symbols and timeframes.
Volume profile zonesHi all!
This script calculates and shows the volume profile for the range of a higher timeframe candle. It then shows support or resistance (/supply or demand) zones based on the volume profiles with the most volume. The defaults are just my preferred settings so feel free to play with them! Also feel free to let me know about bugs and features. I already have a list of features to make, e.g.:
base on pivots
more info zone calculations, e.g. breaks and retests, virgin point of control etc.
add alerts
get rid of getPriceLevels()
get rid of _barVolumeProfile prefix
handle realtime
...
Best of trading luck!
Volume Profile Auto [line]This project is about:
- VPSV
- array.new_line()
- array.new_box()
VPSV (pine) is one of the rare features that draws lines/figures BETWEEN bars
It doesn't run on Pine script, which makes it possible to do such things.
I wanted to have something similar while a restriction of Pine script is the impossibility to draw between bars, the only way I could think of is by using line width
In this script the higher timeframe is started with several lines (left) and a box, this box goes further until the higher timeframe ends.
During the creation of the box, each candle (lower timeframe) in this box (higher timeframe - period) is checked for position and volume, the volume is added to the left line, so when you see a thicker line, this means at that level there is more volume traded.
One of the big differences with other volume profiles is that many look back to a previous period, here when a period starts, the lines collect data - volume until the period ends, it is especially very visible in very low TF's (seconds)
This is my first script with array.new_line() - array.new_box(), which is a very nice Pine feature!
I hope this script can be helpful to see the possibilities
Settings:
'Parts' -> amount of lines (left of box)
5 Parts:
15 Parts:
25 Parts:
50 Parts:
'Max Width' -> Sets the max width of the lines
'Automatic Settings' -> Sets the higher time frame automatically, see the tooltip ⓘ for more info
The yellow line is the max volume line of that period, last period has a red line (POC), also referring the max.
Cheers!
Volume Profile [ZeroHeroTrading]Volume Profile by ZeroHeroTrading provides Volume Profile information fully leveraging the high/low values associated with the volume. As such, it closely aligns with the price action.
You can change the indicator settings as you see fit to achieve the best results for your use case.
Algorithm Notes
The indicator retrieves high/low/volume data within the set lookback period (number of bars back). It then sorts high/low boundaries, and accumulates the volume within the boundaries. Finally, it draws the Volume Profile as a filled out polyline joining all the boundaries together with the relevant accumulated volume proportion, and the POC as a box between the boundaries with the highest accumulated volume starting from the lookback.
When the lookback period is based on days back (instead of bars back), the indicator first dynamically calculates the number of bars to look back within the set number of days.
Please note that the lookback upper limit is 1000 bars back regardless of the settings. For instance, if the requested number of days results in the calculated bars back count (relative to the chart's timeframe) to be higher than 1000, the effective lookback will be 1000 bars back.
Features
It draws the Volume Profile and POC on the chart.
It allows for setting the number of bars or days to look back for retrieving the volume information.
It allows for setting the length of the Volume Profile being displayed (as a number of bars).
It allows for setting the offset from the last bar for the Volume Profile being displayed (as a number of bars).
It allows for setting the orientation of the Volume Profile being displayed from right to left and vice versa.
It allows for setting the colors for the Volume Profile and POC.
It allows for turning the POC functionality on/off.
Settings
Volume Lookback field: Sets number of bars or days to look back for retrieving the volume information. If the Volume Lookback field is set to 0, the volume data is retrieved for the current day regardless of the Bar(s)/Day(s) selection. Default is 200. Minimum is 0 and maximum is 1000.
Volume Lookback dropdown: If Bar(s) is selected, the volume data is retrieved for the set number of bars back. If Day(s) is selected, the volume data is retrieved for the current day plus the set number of day(s) back. Default is Bar(s).
Profile Bar Length field: Sets length of the Volume Profile being displayed as a number of bars. Default is 50. Minimum is 10 and maximum is 100.
Profile Bar Offset field: Sets offset from the last bar for the Volume Profile being displayed as a number of bars. Default is 10. Minimum is 0 and maximum is 100.
Profile Orientation dropdown: Selects Volume Profile orientation. Left is -right to left- and Right is -left to right-. Default is Left.
Profile Color select: Selects Volume Profile color. Default is blue (100% opacity).
Show POC checkbox: Turns on/off POC. Default is on.
POC Color select: Selects POC color. Default is orange (80% opacity).
Volume Profile - BearJust another Volume Profile but you can fit into your chart better by moving back and forth horizontally. also note you can fix the number of bars to show the volume by that way you can use a fib retracment to line up high/low volume nodes with fib levels... see where price as bad structure. or just play with the colors to make a cool gradient?
Volume Profile is a technical analysis tool used by traders to analyze the distribution of trading volume at different price levels within a specified time frame. It helps traders identify key support and resistance levels, potential areas of price reversals, and areas of high trading interest. Here's how to read Volume Profile on a trading chart:
1. **Choose a Time Frame**: Decide on the time frame you want to analyze. Volume Profile can be applied to various time frames, such as daily, hourly, or even minute charts. The choice depends on your trading style and goals.
2. **Plot the Volume Profile**: Once you have your chart open, add the Volume Profile indicator. Most trading platforms offer this tool. It typically appears as a histogram or a series of horizontal bars alongside the price chart.
3. **Identify Key Elements**:
a. **Value Area**: The Value Area represents the price range where the majority of trading volume occurred. It is often divided into three parts: the Point of Control (POC) and the upper and lower value areas. The POC is the price level where the most trading activity occurred and is considered a significant support or resistance level.
b. **High-Volume Nodes**: High-volume nodes are price levels where there was a significant amount of trading volume. These nodes can act as support or resistance levels because they represent areas where many traders had their positions.
c. **Low-Volume Areas**: Conversely, low-volume areas are price levels with little trading activity. These areas may not provide strong support or resistance because they lack significant trader interest.
4. **Interpretation**:
- If the price is trading above the POC and the upper value area, it suggests bullish sentiment, and these levels may act as support.
- If the price is trading below the POC and the lower value area, it suggests bearish sentiment, and these levels may act as resistance.
- High-volume nodes can also act as support or resistance, depending on the price's current position relative to them.
5. **Confirmation**: Volume Profile should be used in conjunction with other technical analysis tools and indicators to confirm trading decisions. Consider using trendlines, moving averages, or other price patterns to validate your trading strategy.
6. **Adjust for Different Time Frames**: Keep in mind that Volume Profile analysis can yield different results on different time frames. For example, a support level on a daily chart may not hold on a shorter time frame due to intraday volatility.
7. **Practice and Experience**: Like any trading tool, reading Volume Profile requires practice and experience. Analyze historical charts, paper trade, and refine your strategies over time to gain proficiency.
8. **Stay Informed**: Stay updated with market news and events that can impact trading volume. Sudden news can change the significance of volume levels.